home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_06 / vancamp / tdavg.hpp < prev    next >
C/C++ Source or Header  |  1995-02-02  |  1KB  |  43 lines

  1. // tdavg.hpp: TableDataAverage class (LISTING 3)
  2. #ifndef TDAVG_HPP
  3. #define TDAVG_HPP
  4. #include "tbldata.hpp"
  5.  
  6. // (Same assumptions about cellType as TDNORM)
  7. template <class cellType> class TableDataAverage:
  8.         public TableData<cellType>
  9. {
  10. public:
  11.     TableDataAverage (TableData<cellType> *const
  12.             prev): TableData<cellType> (prev)
  13.     { }
  14.  
  15.     virtual const cellType GetCell (const int row,
  16.             const int col)
  17.     {
  18.         assert (PrevTD != 0);
  19.         assert (row == 0); // only 1 row in this table
  20.         // Inherit properties from row 0 cell:
  21.         cellType cell (PrevTD->GetCell (0, col));
  22.         for (int p_row = 1; p_row <
  23.                 PrevTD->GetNumRows(); p_row++)
  24.             cell.SetValue (cell.GetValue() +
  25.                     (PrevTD->GetCell
  26.                     (p_row, col)).GetValue());
  27.         cell.SetValue (cell.GetValue() /
  28.                 PrevTD->GetNumRows());
  29.         return (cell);
  30.     }
  31.  
  32.     virtual void PutCell (const int, const int,
  33.             const cellType &)
  34.     { cerr << "Error: Row write-protected!" << endl; }
  35.  
  36.     virtual const int GetNumRows (void) const
  37.     { return (1); }
  38.  
  39.     virtual const char &GetRowHeading (const int)
  40.     { return (*("Average")); }
  41. };
  42. #endif
  43.